import axios from 'axios';
import {layer} from './omsLayer';
import {getCookie,setCookie} from './omsCookiesFun';

const instance = axios.create({
    baseURL: 'http://r.oms/action',//后台api前面相同的路劲
    timeout: 5000,
    withCredentials:true,
    
});

//添加请求拦截器
instance.interceptors.request.use(function(config){
       
        layer.load(2,{
            offset: ['50%', "50%"],/* layer loading层有时候不居中. 强制设置偏移量*/
        });
        if(config.url === '/login.php' || config.url === '/register.php'){
            //登陆和注册操作不进行用户是否登陆验证
        }else if(!getCookie('userInfo')){
            layer.closeAll('loading');
            setTimeout(function(){
                window.location.reload();
            },1500);
            return Promise.reject({
                en:'Login timeout, please login again',
                cn:'登陆超时,请重新登录'
            });
        }

    
        return config;
    },function(error){
     
     layer.closeAll('loading');
     return Promise.reject(error);
});

//添加一个响应拦截器
instance.interceptors.response.use(function (response) {

    layer.closeAll('loading');
    if(getCookie('sessionId') &&　getCookie('userInfo')){

        setCookie('userInfo',getCookie('userInfo'),'m30');
        setCookie('sessionId',getCookie('sessionId'),'m30');
    }
    if(response.data.status){
        return response.data;
    }else{
        return  Promise.reject(response.data.msg);
    }
    // 1.成功
    // if (response.data.success && response.data.messageCode === globalCode.success) {
    //     if(commonInfo.hasLoading){
    //         Toast.hide();
    //     }
    //     return response.data.data;
    // }

    // 2.session过期
    // if (!response.data.success && response.data.messageCode === globalCode.timeout) {
    //     Toast.hide();
    //     Toast.info("会话过期，请重新登录", 1);
    //     createHashHistory().push('/login');

    //     // 定义一个messagecode在后面会用到
    //     return  Promise.reject({
    //         messageCode: 'timeout'
    //     })
    // }

    // 3.1 系统异常、网络异常
    // if (response.data.success && response.data.messageCode === globalCode.busyCode) {
    //     Toast.hide();
    //     Toast.info(response.data.message, 1);
    //     return  Promise.reject({
    //         messageCode: 'netError'
    //     })
    // }

    // // 3.其他失败，比如校验不通过等
    // return Promise.reject(response.data);
}, function () {
    // Toast.hide();
    // // 4.系统错误，比如500、404等
    // Toast.info('系统异常，请稍后重试！', 1);
    layer.closeAll('loading');
     return Promise.reject({
        en:'System error, please try again',
        cn:'系统错误, 请重试'
    });
});

export default instance;